package org.example.model.mapper;

import org.apache.ibatis.annotations.Param;
import org.example.model.dto.OrderUserInfo;
import org.example.model.entity.Order;

import java.util.List;

public interface OrderMapper {
    int deleteByPrimaryKey(String id);

    int insert(Order record);

    int insertSelective(Order record);

    Order selectByPrimaryKey(String id);

    int updateByPrimaryKeySelective(Order record);

    int updateByPrimaryKey(Order record);

    // todo: OrderMapper.xml
    int countByOrderIdAndUserId(@Param("orderId") Integer orderId, @Param("userId") Integer userId);

    // 根据订单编号查询OrderUserInfo
    OrderUserInfo selectByOrderId(@Param("orderId") String orderId);

    // 将指定订单记录进行超时失效（成功下单后未在指定时间内进行支付）
    int expireOrder(@Param("orderId") String orderId);

    // 获取所有待支付的订单记录（即status=0的订单记录）
    List<Order> selectExpireOrders();
}